package work.mediway.mdm.biz.service.patient;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

import work.mediway.mdm.core.page.QueryRequest;
import work.mediway.mdm.biz.vo.patient.PatientMergeLogListVO;
import work.mediway.mdm.biz.dto.patient.PatientMergeDTO;
import work.mediway.mdm.biz.entity.patient.PaMergePatientLog;
import work.mediway.mdm.biz.vo.patient.PatientMergeListVO;

/**
 * @author zhongyj <1126834403@qq.com><br/>
 * @date 2020/12/22
 */
public interface PaMergePatientLogService extends IService<PaMergePatientLog> {

    /**
     * 合并相似患者
     *
     * @param majorPatPatientId  主患者平台Id
     * @param minorPatPatientIds 次患者平台Id(多个之间使用|分隔)
     */
    void mergePatient(String majorPatPatientId, String minorPatPatientIds);

    /**
     * 合并日志列表
     *
     * @param mergeDTO     PatientMergeDTO
     * @param queryRequest QueryRequest
     * @return Page<PatientMergeListVO>
     */
    Page<PatientMergeLogListVO> pageMergePatientLog(PatientMergeDTO mergeDTO, QueryRequest queryRequest);

    /**
     * 取消合并相似患者
     *
     * @param mergePatOldPatientId 主患者平台Id
     * @param mergePatPatientId    次患者平台Id(多个之间使用|分隔)
     */
    void mergeCancelPatient(String mergePatOldPatientId, String mergePatPatientId);

    /**
     * 查询患者合并列表
     *
     * @param mergeDTO     PatientMergeDTO
     * @param queryRequest QueryRequest
     * @return List<PatientMergeListVO>
     */
    List<PatientMergeListVO> pageMergePatient(PatientMergeDTO mergeDTO, QueryRequest queryRequest);
}
